package com.program.facesigninsystem.dao;

import com.program.facesigninsystem.entity.Classes;
import com.program.facesigninsystem.entity.SignInList;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface IClassesDao {
    /****
     * 新建班级（名单）
     * @param cid
     * @param name
     * @param r_count
     * @param t_count
     * @param tid
     */
    void insertClasses(@Param("cid")String cid,@Param("name")String name,@Param("r_count")int r_count,@Param("t_count")int t_count,@Param("tid")String tid,@Param("createTime")String createTime);

    /****
     * 返回班级（名单）信息
     * @Param cid
     */
    Classes selectClass(@Param("cid")String cid);

    /****
     * 更新班级（名单）实际人数
     * @Param cid
     */
    void updateAddCount(@Param("cid")String cid);

    /***
     * 按教师id获取名单列表
     * @param tid
     * @return
     */
    List<Classes> selectClassListByTid(@Param("tid") String tid);

    /****
     * 修改班级（名单）指定人数
     * @Param cid
     */
    void updateClassTCount(@Param("cid")String cid,@Param("t_count")int t_count);

    /****
     * 删除班级（名单）
     * @Param cid
     */
    void deleteClassById(@Param("cid")String cid);

    /****
     * 更新班级（名单）实际人数
     * @Param cid
     */
    void updateSubCount(@Param("cid")String cid);

    /****
     * 返回教师id
     * @param cid
     * @return
     */
    String selectTidByCid(@Param("cid")String cid);


    /**
     * 新增签到名单
     * @param uid 上传名单的用户id
     * @param filePath 文件路径
     * @param fileName 文件名
     * @param url 文件访问url
     */
    void insertSignInList(
            @Param("uid")String uid,
            @Param("filePath")String filePath,
            @Param("fileName")String fileName,
            @Param("url")String url);

    /**
     * 查询用户上传过的历史名单
     * @param uid 用户id
     * @return 返回用户的历史名单
     */
    List<SignInList> selectSignInListByUid(@Param("uid")String uid);

    /**
     * 删除历史名单
     * @param uid 用户id
     * @param id 名单id
     */
    void deleteSignInList(@Param("uid")String uid,@Param("id")int id);

    /**
     * 查询某名单
     * @param id 名单id
     */
    SignInList selectSignInList(@Param("id")int id);
}
